[Overview] [Previous]
[Next]
Building Regular Expressions
Here are some hints on building regular
expressions. We will assume
= {a, b, c}.
- Zero or more.
- a* means "zero or more a's." To say "zero or more ab's," that is, {
, ab, abab,
ababab, ...}, you need to say (ab)*. Don't say ab*, because that denotes the
language {a, ab, abb, abbb, abbbb, ...}.
- One or more.
- Since a* means "zero or more a's", you can use aa* (or equivalently, a*a)
to mean "one or more a's." Similarly, to describe "one or more ab's," that is,
{ab, abab, ababab, ...}, you can use ab(ab)*.
- Zero or one.
- You can describe an optional a with (a+
).
- Any string at all.
- To describe any string at all (with
= {a, b, c}), you
can use (a+b+c)*.
- Any nonempty string.
- This can be written as any character from
followed by any
string at all: (a+b+c)(a+b+c)*.
- Any string not containing....
- To describe any string at all that doesn't contain an a (with
= {a,
b, c}), you can use (b+c)*.
- Any string containing exactly one...
- To describe any string that contains exactly one a, put "any string not
containing an a," on either side of the a, like this: (b+c)*a(b+c)*.
Copyright © 1996 by David Matuszek
Last modified Feb 4, 1996